package com.starview.star.compiler.canonical;

import com.starview.platform.data.type.Location;
import com.starview.star.compiler.util.PrettyPrintable;



public interface Canonical extends PrettyPrintable
{
  /**
   * Every term has a potential location. This enables debugging and error
   * reporting to be sensitive to the actual element itself.
   * 
   * @return a Location object that denotes the source location of the term.
   */

  Location getLoc();

  /**
   * Every canonical is visitable
   * 
   * @param visitor
   */
  void accept(CanonicalVisitor visitor);
}
